/*
 * JGrass - Free Open Source Java GIS http://www.jgrass.org 
 * (C) HydroloGIS - www.hydrologis.com 
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Library General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option) any
 * later version.
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Library General Public License
 * along with this library; if not, write to the Free Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */
package org.jgrasstools.gears.io.dxfdwg.libs.dwg.utils;

/**
 * Class that contains the tables for Autocad to Unicode text conversions
 * 
 * @author jmorell
 */
class Unicode {
    private static final char UCNONE = 65535;
    private static final char unicode[][] = {
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177', '\200', '\201', '\202', '\203',
                    '\204', '\205', '\206', '\207', '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', '\220',
                    '\221', '\222', '\223', '\224', '\225', '\226', '\227', '\230', '\231', '\232', '\233', '\234', '\235',
                    '\236', '\237', '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', '\250', '\251', '\252',
                    '\253', '\254', '\255', '\256', '\257', '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
                    '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', '\300', '\301', '\302', '\303', '\304',
                    '\305', '\306', '\307', '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', '\320', '\321',
                    '\322', '\323', '\324', '\325', '\326', '\327', '\330', '\331', '\332', '\333', '\334', '\335', '\336',
                    '\337', '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', '\350', '\351', '\352', '\353',
                    '\354', '\355', '\356', '\357', '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', '\370',
                    '\371', '\372', '\373', '\374', '\375', '\376', '\377'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177', '\200', '\201', '\202', '\203',
                    '\204', '\205', '\206', '\207', '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', '\220',
                    '\221', '\222', '\223', '\224', '\225', '\226', '\227', '\230', '\231', '\232', '\233', '\234', '\235',
                    '\236', '\237', '\240', '\u0104', '\u02D8', '\u0141', '\244', '\u013D', '\u015A', '\247', '\250', '\u0160',
                    '\u015E', '\u0164', '\u0179', '\255', '\u017D', '\u017B', '\260', '\u0105', '\u02DB', '\u0142', '\264',
                    '\u013E', '\u015B', '\u02C7', '\270', '\u0161', '\u015F', '\u0165', '\u017A', '\u02DD', '\u017E', '\u017C',
                    '\u0154', '\301', '\302', '\u0102', '\304', '\u0139', '\u0106', '\307', '\u010C', '\311', '\u0118', '\313',
                    '\u011A', '\315', '\316', '\u010E', '\u0110', '\u0143', '\u0147', '\323', '\324', '\u0150', '\326', '\327',
                    '\u0158', '\u016E', '\332', '\u0170', '\334', '\335', '\u0162', '\337', '\u0155', '\341', '\342', '\u0103',
                    '\344', '\u013A', '\u0107', '\347', '\u010D', '\351', '\u0119', '\353', '\u011B', '\355', '\356', '\u010F',
                    '\u0111', '\u0144', '\u0148', '\363', '\364', '\u0151', '\366', '\367', '\u0159', '\u016F', '\372', '\u0171',
                    '\374', '\375', '\u0163', '\u02D9'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\344', '\340', '\345', '\347', '\352', '\353', '\350', '\357', '\356', '\354', '\304', '\305',
                    '\311', '\346', '\306', '\364', '\366', '\362', '\373', '\371', '\377', '\326', '\334', '\242', '\243',
                    '\245', '\u20A7', '\u0192', '\341', '\355', '\363', '\372', '\361', '\321', '\252', '\272', '\277', '\u2310',
                    '\254', '\275', '\274', '\241', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u2561',
                    '\u2562', '\u2556', '\u2555', '\u2563', '\u2551', '\u2557', '\u255D', '\u255C', '\u255B', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u255E', '\u255F', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\u2567', '\u2568', '\u2564', '\u2565', '\u2559', '\u2558', '\u2552', '\u2553',
                    '\u256B', '\u256A', '\u2518', '\u250C', '\u2588', '\u2584', '\u258C', '\u2590', '\u2580', '\u03B1', '\337',
                    '\u0393', '\u03C0', '\u03A3', '\u03C3', '\265', '\u03C4', '\u03A6', '\u0398', '\u03A9', '\u03B4', '\u221E',
                    '\u03C6', '\u03B5', '\u2229', '\u2261', '\261', '\u2265', '\u2264', '\u2320', '\u2321', '\367', '\u2248',
                    '\260', '\u2219', '\267', '\u221A', '\u207F', '\262', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\344', '\340', '\345', '\347', '\352', '\353', '\350', '\357', '\356', '\354', '\304', '\305',
                    '\311', '\346', '\306', '\364', '\366', '\362', '\373', '\371', '\377', '\326', '\334', '\370', '\243',
                    '\330', '\327', '\u0192', '\341', '\355', '\363', '\372', '\361', '\321', '\252', '\272', '\277', '\256',
                    '\254', '\275', '\274', '\241', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\301',
                    '\302', '\300', '\251', '\u2563', '\u2551', '\u2557', '\u255D', '\242', '\245', '\u2510', '\u2514', '\u2534',
                    '\u252C', '\u251C', '\u2500', '\u253C', '\343', '\303', '\u255A', '\u2554', '\u2569', '\u2566', '\u2560',
                    '\u2550', '\u256C', '\244', '\360', '\320', '\312', '\313', '\310', '\u0131', '\315', '\316', '\317',
                    '\u2518', '\u250C', '\u2588', '\u2584', '\246', '\314', '\u2580', '\323', '\337', '\324', '\322', '\365',
                    '\325', '\265', '\376', '\336', '\332', '\333', '\331', '\375', '\335', '\257', '\264', '\255', '\261',
                    '\u2017', '\276', '\266', '\247', '\367', '\270', '\260', '\250', '\267', '\271', '\263', '\262', '\u25A0',
                    '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\344', '\u016F', '\u0107', '\347', '\u0142', '\353', '\u0150', '\u0151', '\356', '\u0179', '\304',
                    '\u0106', '\311', '\u0139', '\u013A', '\364', '\366', '\u013D', '\u013E', '\u015A', '\u015B', '\326', '\334',
                    '\u0164', '\u0165', '\u0141', '\327', '\u010D', '\341', '\355', '\363', '\372', '\u0104', '\u0105', '\u017D',
                    '\u017E', '\u0118', '\u0119', '\254', '\u017A', '\u010C', '\u015F', '\253', '\273', '\u2591', '\u2592',
                    '\u2593', '\u2502', '\u2524', '\301', '\302', '\u011A', '\u015E', '\u2563', '\u2551', '\u2557', '\u255D',
                    '\u017B', '\u017C', '\u2510', '\u2514', '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u0102', '\u0103',
                    '\u255A', '\u2554', '\u2569', '\u2566', '\u2560', '\u2550', '\u256C', '\244', '\u0111', '\u0110', '\u010E',
                    '\313', '\u010F', '\u0147', '\315', '\316', '\u011B', '\u2518', '\u250C', '\u2588', '\u2584', '\u0162',
                    '\u016E', '\u2580', '\323', '\337', '\324', '\u0143', '\u0144', '\u0148', '\u0160', '\u0161', '\u0154',
                    '\332', '\u0155', '\u0170', '\375', '\335', '\u0163', '\264', '\255', '\u02DD', '\u02DB', '\u02C7', '\u02D8',
                    '\247', '\367', '\270', '\260', '\250', '\u02D9', '\u0171', '\u0158', '\u0159', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\u0452', '\u0402', '\u0453',
                    '\u0403', '\u0451', '\u0401', '\u0454', '\u0404', '\u0455', '\u0405', '\u0456', '\u0406', '\u0457', '\u0407',
                    '\u0456', '\u0408', '\u0459', '\u0409', '\u045A', '\u040A', '\u045B', '\u040B', '\u045C', '\u040C', '\u045E',
                    '\u040E', '\u045F', '\u040F', '\u044E', '\u042E', '\u044A', '\u042A', '\u0430', '\u0410', '\u0431', '\u0411',
                    '\u0446', '\u0426', '\u0434', '\u0414', '\u0435', '\u0415', '\u0444', '\u0424', '\u0433', '\u0413', '\253',
                    '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u0445', '\u0425', '\u0438', '\u0418', '\u2563',
                    '\u2551', '\u2557', '\u255D', '\u0439', '\u0419', '\u2510', '\u2514', '\u2534', '\u252C', '\u251C', '\u2500',
                    '\u253C', '\u043A', '\u041A', '\u255A', '\u2554', '\u2569', '\u2566', '\u2560', '\u2550', '\u256C', '\244',
                    '\u043B', '\u041B', '\u043C', '\u041C', '\u043D', '\u041D', '\u043E', '\u041E', '\u043F', '\u2518', '\u250C',
                    '\u2588', '\u2584', '\u041F', '\u044F', '\u2580', '\u042F', '\u0440', '\u0420', '\u0441', '\u0421', '\u0442',
                    '\u0422', '\u0443', '\u0423', '\u0436', '\u0416', '\u0432', '\u0412', '\u044C', '\u042C', '\u2116', '\255',
                    '\u044B', '\u042B', '\u0437', '\u0417', '\u0448', '\u0428', '\u044D', '\u042D', '\u0449', '\u0429', '\u0447',
                    '\u0427', '\uFFFF', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\344', '\340', '\345', '\347', '\352', '\353', '\350', '\357', '\356', '\u0131', '\304', '\305',
                    '\311', '\346', '\306', '\364', '\366', '\362', '\373', '\371', '\u0130', '\326', '\334', '\370', '\243',
                    '\330', '\u015E', '\u015F', '\341', '\355', '\363', '\372', '\361', '\321', '\u011E', '\u011F', '\277',
                    '\256', '\254', '\275', '\274', '\241', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524',
                    '\301', '\302', '\300', '\251', '\u2563', '\u2551', '\u2557', '\u255D', '\242', '\245', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\343', '\303', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\244', '\272', '\252', '\312', '\313', '\310', '\uFFFF', '\315', '\316',
                    '\317', '\u2518', '\u250C', '\u2588', '\u2584', '\246', '\314', '\u2580', '\323', '\337', '\324', '\322',
                    '\365', '\325', '\265', '\uFFFF', '\327', '\332', '\333', '\331', '\354', '\377', '\257', '\264', '\255',
                    '\261', '\uFFFF', '\276', '\266', '\247', '\367', '\270', '\260', '\250', '\267', '\271', '\263', '\262',
                    '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\343', '\340', '\301', '\347', '\352', '\312', '\350', '\315', '\324', '\354', '\303', '\302',
                    '\311', '\300', '\310', '\364', '\365', '\362', '\332', '\371', '\314', '\325', '\334', '\242', '\243',
                    '\331', '\u20A7', '\323', '\341', '\355', '\363', '\372', '\361', '\321', '\252', '\272', '\277', '\322',
                    '\254', '\275', '\274', '\241', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u2561',
                    '\u2562', '\u2556', '\u2555', '\u2563', '\u2551', '\u2557', '\u255D', '\u255C', '\u255B', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u255E', '\u255F', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\u2567', '\u2568', '\u2564', '\u2565', '\u2559', '\u2558', '\u2552', '\u2553',
                    '\u256B', '\u256A', '\u2518', '\u250C', '\u2588', '\u2584', '\u258C', '\u2590', '\u2580', '\u03B1', '\337',
                    '\u0393', '\u03C0', '\u03A3', '\u03C3', '\265', '\u03C4', '\u03A6', '\u0398', '\u03A9', '\u03B4', '\u221E',
                    '\u03C6', '\u03B5', '\u2229', '\u2261', '\261', '\u2265', '\u2264', '\u2320', '\u2321', '\367', '\u2248',
                    '\260', '\u2219', '\267', '\u221A', '\u207F', '\262', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\343', '\340', '\345', '\347', '\352', '\353', '\350', '\320', '\360', '\336', '\304', '\305',
                    '\311', '\346', '\306', '\364', '\366', '\376', '\373', '\335', '\375', '\326', '\334', '\370', '\243',
                    '\330', '\u20A7', '\u0192', '\341', '\355', '\363', '\372', '\301', '\315', '\323', '\332', '\277', '\u2310',
                    '\254', '\275', '\274', '\241', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u2561',
                    '\u2562', '\u2556', '\u2555', '\u2563', '\u2551', '\u2557', '\u255D', '\u255C', '\u255B', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u255E', '\u255F', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\u2567', '\u2568', '\u2564', '\u2565', '\u2559', '\u2558', '\u2552', '\u2553',
                    '\u256B', '\u256A', '\u2518', '\u250C', '\u2588', '\u2584', '\u258C', '\u2590', '\u2580', '\u03B1', '\337',
                    '\u0393', '\u03C0', '\u03A3', '\u03C3', '\265', '\u03C4', '\u03A6', '\u0398', '\u03A9', '\u03B4', '\u221E',
                    '\u03C6', '\u03B5', '\u2229', '\u2261', '\261', '\u2265', '\u2264', '\u2320', '\u2321', '\367', '\u2248',
                    '\260', '\u2219', '\267', '\u221A', '\u207F', '\262', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\343', '\340', '\266', '\347', '\352', '\353', '\350', '\357', '\356', '\u2017', '\300', '\247',
                    '\311', '\310', '\312', '\364', '\313', '\317', '\373', '\371', '\244', '\324', '\334', '\242', '\243',
                    '\331', '\333', '\u0192', '\246', '\264', '\363', '\372', '\250', '\270', '\263', '\257', '\316', '\u2310',
                    '\254', '\275', '\274', '\276', '\253', '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u2561',
                    '\u2562', '\u2556', '\u2555', '\u2563', '\u2551', '\u2557', '\u255D', '\u255C', '\u255B', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u255E', '\u255F', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\u2567', '\u2568', '\u2564', '\u2565', '\u2559', '\u2558', '\u2552', '\u2553',
                    '\u256B', '\u256A', '\u2518', '\u250C', '\u2588', '\u2584', '\u258C', '\u2590', '\u2580', '\u03B1', '\337',
                    '\u0393', '\u03C0', '\u03A3', '\u03C3', '\265', '\u03C4', '\u03A6', '\u0398', '\u03A9', '\u03B4', '\u221E',
                    '\u03C6', '\u03B5', '\u2229', '\u2261', '\261', '\u2265', '\u2264', '\u2320', '\u2321', '\367', '\u2248',
                    '\260', '\u2219', '\267', '\u221A', '\u207F', '\262', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\260', '\267', '\u2219',
                    '\u221A', '\u2592', '\u2500', '\u2502', '\u253C', '\u2524', '\u252C', '\u251C', '\u2534', '\u2510', '\u250C',
                    '\u2514', '\u2518', '\u03B2', '\u221E', '\u03C6', '\261', '\275', '\274', '\u2248', '\253', '\273', '\uFEF7',
                    '\uFEF8', '\uFFFF', '\uFFFF', '\uFEFB', '\uFEFC', '\uFFFF', '\240', '\255', '\uFE82', '\243', '\244',
                    '\uFE84', '\uFFFF', '\uFFFF', '\uFE8E', '\uFE8F', '\uFE95', '\uFE99', '\u060C', '\uFE9D', '\uFEA1', '\uFEA5',
                    '\u0660', '\u0661', '\u0662', '\u0663', '\u0664', '\u0665', '\u0666', '\u0667', '\u0668', '\u0669', '\uFED1',
                    '\u061B', '\uFEB1', '\uFEB5', '\uFEB9', '\u061F', '\242', '\uFE80', '\uFE81', '\uFE83', '\uFE85', '\uFECC',
                    '\uFE8A', '\uFE8D', '\uFE90', '\uFE93', '\uFE96', '\uFE9A', '\uFE9E', '\uFEA2', '\uFEA6', '\uFEA9', '\uFEAB',
                    '\uFEAD', '\uFEAF', '\uFEB2', '\uFEB6', '\uFEBA', '\uFEBE', '\uFEC1', '\uFEC5', '\uFECA', '\uFECE', '\246',
                    '\254', '\367', '\327', '\uFEC9', '\u0640', '\uFED2', '\uFED6', '\uFEDA', '\uFEDE', '\uFEE2', '\uFEE6',
                    '\uFEEA', '\uFEED', '\uFEEF', '\uFEF2', '\uFEBD', '\uFECB', '\uFED0', '\uFECD', '\uFEE1', '\uFE7D', '\u0651',
                    '\uFEE5', '\uFEE9', '\uFEEB', '\uFEF0', '\uFEF4', '\uFECF', '\uFED5', '\uFEF5', '\uFEF6', '\uFEDD', '\uFED9',
                    '\uFEF1', '\u25A0', '\uFFFF'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\307', '\374', '\351',
                    '\342', '\344', '\340', '\265', '\347', '\352', '\353', '\350', '\357', '\356', '\354', '\304', '\305',
                    '\311', '\346', '\306', '\364', '\366', '\362', '\373', '\371', '\377', '\326', '\334', '\370', '\243',
                    '\330', '\u20A7', '\u0192', '\341', '\355', '\363', '\372', '\361', '\321', '\252', '\272', '\277', '\u2310',
                    '\254', '\275', '\274', '\241', '\253', '\244', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u2561',
                    '\u2562', '\u2556', '\u2555', '\u2563', '\u2551', '\u2557', '\u255D', '\u255C', '\u255B', '\u2510', '\u2514',
                    '\u2534', '\u252C', '\u251C', '\u2500', '\u253C', '\u255E', '\u255F', '\u255A', '\u2554', '\u2569', '\u2566',
                    '\u2560', '\u2550', '\u256C', '\u2567', '\u2568', '\u2564', '\u2565', '\u2559', '\u2558', '\u2552', '\u2553',
                    '\u256B', '\u256A', '\u2518', '\u250C', '\u2588', '\u2584', '\u258C', '\u2590', '\u2580', '\u03B1', '\337',
                    '\u0393', '\u03C0', '\u03A3', '\u03C3', '\265', '\u03C4', '\u03A6', '\u0398', '\u03A9', '\u03B4', '\u221E',
                    '\u03C6', '\u03B5', '\u2229', '\u2261', '\261', '\u2265', '\u2264', '\u2320', '\u2321', '\367', '\u2248',
                    '\260', '\u2219', '\267', '\u221A', '\u207F', '\262', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u2302', '\uFFFF', '\uFFFF', '\uFFFF',
                    '\uFFFF', '\uFFFF', '\uFFFF', '\u0386', '\uFFFF', '\267', '\254', '\246', '\u2018', '\u2019', '\u0388',
                    '\u2015', '\u0389', '\u038A', '\u03AA', '\u038C', '\uFFFF', '\uFFFF', '\u038E', '\u03AB', '\251', '\u038F',
                    '\262', '\263', '\u03AC', '\243', '\u03AD', '\u03AE', '\u03AF', '\u03CA', '\u0390', '\u03CC', '\u03CD',
                    '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\275', '\u0398', '\u0399', '\253',
                    '\273', '\u2591', '\u2592', '\u2593', '\u2502', '\u2524', '\u039A', '\u039B', '\u039C', '\u039D', '\u2563',
                    '\u2551', '\u2557', '\u255D', '\u039E', '\u039F', '\u2510', '\u2514', '\u2534', '\u252C', '\u251C', '\u2500',
                    '\u253C', '\u03A0', '\u03A1', '\u255A', '\u2554', '\u2569', '\u2566', '\u2560', '\u2550', '\u256C', '\u03A3',
                    '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9', '\u03B1', '\u03B2', '\u03B3', '\u2518', '\u250C',
                    '\u2588', '\u2584', '\u03B4', '\u03B5', '\u2580', '\u03B6', '\u03B7', '\u03B8', '\u03B9', '\u03BA', '\u03BB',
                    '\u03BC', '\u03BD', '\u03BE', '\u03BF', '\u03C0', '\u03C1', '\u03C3', '\u03C2', '\u03C4', '\264', '\255',
                    '\261', '\u03C5', '\u03C6', '\u03C7', '\247', '\u03C8', '\u03F4', '\260', '\250', '\u03C9', '\u03CB',
                    '\u03B0', '\u03CE', '\u25A0', '\240'},
            {'\0', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\b', '\t', '\n', '\013', '\f', '\r', '\016', '\017',
                    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', '\030', '\031', '\032', '\033', '\034',
                    '\035', '\036', '\037', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0',
                    '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
                    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
                    '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
                    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177', '\304', '\305', '\307', '\311',
                    '\321', '\326', '\334', '\341', '\340', '\342', '\344', '\343', '\345', '\347', '\351', '\350', '\352',
                    '\353', '\355', '\354', '\356', '\357', '\361', '\363', '\362', '\364', '\366', '\365', '\372', '\371',
                    '\373', '\374', '\u2020', '\260', '\242', '\243', '\247', '\u2022', '\266', '\337', '\256', '\251', '\u2122',
                    '\264', '\250', '\u2260', '\306', '\330', '\u221E', '\261', '\u2264', '\u2265', '\245', '\265', '\u2202',
                    '\u2211', '\u220F', '\u03C0', '\u222B', '\252', '\272', '\u2126', '\346', '\370', '\277', '\241', '\254',
                    '\u221A', '\u0192', '\u2248', '\u2206', '\253', '\273', '\u2026', '\240', '\300', '\303', '\325', '\u0152',
                    '\u0153', '\u2010', '\u2014', '\u201C', '\u201D', '\u2018', '\u2019', '\367', '\u25CA', '\377', '\u0178',
                    '\u2044', '\244', '\u2039', '\u203A', 'f', 'f', '\u2021', '\267', '\u201A', '\u201E', '\u2030', '\302',
                    '\312', '\301', '\313', '\310', '\315', '\316', '\317', '\314', '\323', '\324', '\uFDFF', '\322', '\332',
                    '\333', '\331', '\u0131', '\u02C6', '\u02DC', '\257', '\u02D8', '\u02D9', '\u02DA', '\270', '\u02DD',
                    '\u02DB', '\u02C7'}};
    private static char unicode2DOS437[];

    /**
     * Char to DOS437 converter
     * 
     * @param stringbuffer
     * @param i
     * @param c
     * @return String 
     */
    public static synchronized String char2DOS437( StringBuffer stringbuffer, int i, char c ) {
        if (unicode2DOS437 == null) {
            unicode2DOS437 = new char[0x10000];
            for( int j = 0; j < 256; j++ ) {
                char c1;
                if ((c1 = unicode[2][j]) != '\uFFFF')
                    unicode2DOS437[c1] = (char) j;
            }
        }
        if (i != 2) {
            StringBuffer stringbuffer1 = new StringBuffer(stringbuffer.length());
            for( int k = 0; k < stringbuffer.length(); k++ ) {
                char c2 = unicode2DOS437[stringbuffer.charAt(k)];
                stringbuffer1.append(c2 == 0 ? c : c2);
            }

            return new String(stringbuffer1);
        } else {
            return new String(stringbuffer);
        }
    }
}
